/***
 * 导出excel功能
 * @param jsonData json数据
 * @param fileName 文件名称
 */
function exportToExcel(jsonData, fileName="data") {
    // 将JSON数据转换为CSV格式
    const csv = jsonToCsv(jsonData);

    // 创建一个Blob对象，并添加BOM以确保Excel正确识别UTF-8编码
    const bom = '\ufeff'; // BOM for UTF-8
    const blob = new Blob([bom + csv], {type: 'text/csv;charset=utf-8;'});

    // 创建一个下载链接
    const link = document.createElement("a");
    const url = URL.createObjectURL(blob);
    link.setAttribute("href", url);
    link.setAttribute("download", fileName + ".csv");
    document.body.appendChild(link);

    // 模拟点击以触发下载
    link.click();

    // 移除链接
    document.body.removeChild(link);
}

/***
 * json 转csv
 * @param jsonData json格式数据
 * @returns csv
 */
function jsonToCsv(jsonData) {
    const csvRows = [];
    // 获取表头
    const headers = Object.keys(jsonData[0]);
    csvRows.push(headers.join(','));

    // 添加数据行
    for (const row of jsonData) {
        const values = headers.map(header => {
            const escaped = ('' + row[header]).replace(/"/g, '\\"');
            return `"${escaped}"`;
        });
        csvRows.push(values.join(','));
    }

    return csvRows.join('\n');
}